Zdarza się czasami, że nie lubimy jak ktoś
chce ingerować w kod strony, a zabezpieczanie typu "Prawy klawisz nie działa"
jeszcze bardziej internautę zachęca do wglądu kodu. Możemy poradzić sobie
menu działającym pod IE 5.0+ lub NN 4.6+ które ładnie wygląda.
Opiszę poniżej w kilku krokach, co należy zrobić
Jeśli menu będzie pojawiać się na
kilkunastu stronach, polecam zrobienie plików menu_a.js, menu_b.js i style.css.
Ułatwi to edycję plików i zarazem, łatwiej nam będzie z tego korzystać.
Teraz opiszę co należy w poszczególnych plikach wpisać. Tak więc.
--------------- Plik menu_a.js
---------------
var menuskin = "skin1"; // wybierz skin, można go edytowac powyżej
var display_url = 0; // czy pokazywac URL na dole?
function showmenuie5() {
var rightedge = document.body.clientWidth-event.clientX;
var bottomedge = document.body.clientHeight-event.clientY;
if (rightedge < ie5menu.offsetWidth)
ie5menu.style.left = document.body.scrollLeft + event.clientX - ie5menu.offsetWidth;
else
ie5menu.style.left = document.body.scrollLeft + event.clientX;
if (bottomedge < ie5menu.offsetHeight)
ie5menu.style.top = document.body.scrollTop + event.clientY - ie5menu.offsetHeight;
else
ie5menu.style.top = document.body.scrollTop + event.clientY;
ie5menu.style.visibility = "visible";
return false;
}
function hidemenuie5() {
ie5menu.style.visibility = "hidden";
}
function highlightie5() {
if (event.srcElement.className == "menuitems") {
event.srcElement.style.backgroundColor = "highlight";
event.srcElement.style.color = "white"; // kolor czcionki po zamianie
if (display_url)
window.status = event.srcElement.url;
}
}
function lowlightie5() {
if (event.srcElement.className == "menuitems") {
event.srcElement.style.backgroundColor = "";
event.srcElement.style.color = "black"; // kolor czcionki po zamianie, zostanie
window.status = "";
}
}
function jumptoie5() {
if (event.srcElement.className == "menuitems") {
if (event.srcElement.getAttribute("target") != null)
window.open(event.srcElement.url, event.srcElement.getAttribute("target"));
else
window.location = event.srcElement.url;
}
}
Pogrubieniami zostały zaznaczone rzeczy, które
można zmieniać.
--------------- Plik menu_b.js
---------------
if (document.all && window.print) {
ie5menu.className = menuskin;
document.oncontextmenu = showmenuie5;
document.body.onclick = hidemenuie5;
}
--------------- Plik style.css
---------------
<style TYPE="text/css">
<!--
.skin0 {
position: absolute;
text-align: left;
width: 200px;
border: 2px solid black;
background-color: menu;
font-family: Verdana;
line-height: 20px;
cursor: default;
visibility: hidden;
}
.skin1 {
cursor:default;
font:menutext;
position:absolute;
text-align:left;
font-family: Verdana;
font-size: 10pt;
width:150px;
background-color:menu;
border:1 solid buttonface;
visibility:hidden;
border:2 outset buttonhighlight;
}
.menuitems {
padding-left:10px;
padding-right:10px;
font-weight: bold;
}
-->
</style>
Możesz ten kod dowolnie edytować do własnych
potrzeb.
Teraz tworzymy plik, w którym będzie nasze
menu, możemy także wkleić ten kod do innego pliku HTML. Ważne jest by część
była w ramach <HEAD> a reszta <BODY>.
<HEAD>
<SCRIPT LANGUAGE="JavaScript1.2" src="menu_a.js"></script>
<LINK REL="stylesheet" HREF="style.css" TYPE="text/css">
</HEAD>
<BODY>
<div id="ie5menu" class="skin0" onMouseover="highlightie5()" onMouseout="lowlightie5()" onClick="jumptoie5();">
<div class="menuitems" url="javascript:history.back();">Powrót</div>
<div class="menuitems" url="http://www.webhelp.pl">Go Home</div>
<hr>
<div class="menuitems" url="mailto:kamileq@wp.pl">Autor</div>
</div>
<script language="JavaScript1.2" src="menu_b.js"></script>
</body>
Część pogrubiona to nasze menu, możemy je
edytować i dodawać nowe według własnego uznania. Pamiętajmy o włączeniu
tych skryptów do kodu html oraz aby wszystko było w jednym katalogu, a jeśli
nie to należy zeedytować ścieżki.
Jeśli chcesz zobaczyć nasz efekt pracy to nacisnij prawy klawisz myszy!
Autor:
Kamil Dziedzic
kamil@webhelp.pl
http://www.kamileq.w.pl